<?php

namespace common\models\patient;

use Yii;

/**
 * This is the model class for table "{{%patient_user}}".
 *
 * @property int $id
 * @property int $project_id 项目ID
 * @property string $patient_card_id 诊疗号
 * @property string $name 患者姓名
 * @property string $birthday 生日
 * @property int $age 年龄
 * @property string $wx_name 微信号
 * @property string $nickname 微信昵称
 * @property int $source_channel_id 来源渠道ID【by_marketing_source_channel】
 * @property int $gender 性别[0:未知;1:男;2:女]
 * @property string $mobile 手机号
 * @property int $city_id 城市ID【对应by_common_provinces id】
 * @property string $city_name 城市名称
 * @property string $address 详细地址(身份证地址)
 * @property string $work_address 居住地地址
 * @property int $patient_diseases_id 病种ID【by_base_patient_diseases】
 * @property int $patient_diseases_child_id 二级病种ID【by_base_patient_diseases】
 * @property string $patient_body_parts_name 部位（冗余字段）【多个用','分割】
 * @property string $patient_tags_name 患者标签（冗余字段）【多个用','分割】
 * @property int $belong_assistant_id 医助归属人id，关联member表
 * @property int $belong_member_id 客服归属人id，关联member表
 * @property string $belong_member_name 客服归属人姓名， 冗余字段
 * @property int $effect_type_id 效果类型 ID【by_marketing_effect_type】
 * @property int $risk_type_id 风控类型ID【by_marketing_risk_type】
 * @property int $clinic_assess_id 诊疗评估ID【by_marketing_clinic_assess】
 * @property int $outpatient_type_id 就诊类型 ID【by_marketing_outpatient_type】
 * @property int $last_clinic_time 上次治疗时间
 * @property int $last_infusion_time 上次输液时间
 * @property int $clinic_id 诊室ID【by_clinic】
 * @property string $profession 职业
 * @property int $reg_time 初次挂号时间
 * @property int $last_revisiting_time 上次到诊日期（上次来院时间）
 * @property int $kf_next_callback_time 客服下次回访日期
 * @property int $kf_last_callback_time 客服上次回访日期
 * @property int $kf_last_callback_id 客服上次回访人ID
 * @property string|null $kf_last_callback_user 客服上次回访人
 * @property int|null $kf_callback_count 客服回访总次数
 * @property int $yz_last_callback_time 医助上次回访日期
 * @property int $yz_next_callback_time 医助下次回访日期
 * @property int $yz_last_callback_id 医助上次回访人ID
 * @property string|null $yz_last_callback_user 医助上次回访人
 * @property int|null $yz_callback_count 医助回访总次数
 * @property int $next_revisiting_time 下次复诊日期
 * @property int $last_callback_time 上次回访日期（作废）
 * @property int $next_callback_time 下次回访日期（作废）
 * @property int $callback_count 总回访次数（包括医助、客服和其它岗位的所有回访总次数）
 * @property int|null $is_anti_relapse 是否为抗复发（0：否， 其它数字代表抗复发的年限） - 抗复发的患者不算断诊
 * @property int $is_introduce 是否为介绍号（0：不是  1：是）
 * @property int|null $anti_relapse_year 抗复发年限
 * @property int $missed_days 未到诊天数【=当前时间-上次就诊时间（最近）】
 * @property int $revisiting_count 来院次数（来一次算一次，当天来多次，算一次）
 * @property int $fault_diagnosis_count 断诊次数
 * @property string|null $remark 备注
 * @property int $status 状态【-1删除、0禁用、1启用】
 * @property int $modify_time 最后一次更新时间（从微信端数据库同步数据时使用）
 * @property float $degree_num 完善度（eg: 0.65，代表65%）
 * @property int|null $serial_no 奕远自增id - 便于跟hosptial表比对数据
 * @property int $created_at 创建时间
 * @property int $updated_at 更新时间
 */
class User extends \common\models\BaseModel
{
    const IS_ANTI_RELAPSE_NO = 0;// 抗复发【否】
    const IS_ANTI_RELAPSE_YES = 1;// 抗复发【是】

    const IS_INTRODUCE_NO = 0;// 介绍号【否】
    const IS_INTRODUCE_YES = 1;// 介绍号【是】

    const STATUS_DELETE = -1;// 删除
    const STATUS_INVALID = 0;// 失效
    const STATUS_ENABLE = 1;// 正常

    const GENDER_UNKNOWN = 0;// 未知
    const GENDER_MAN = 1;// 男性
    const GENDER_WOMAN = 2;// 女性
    const SERIAL_NO_DT = -1; // serial_no  = -1 灯塔来源

    public static $status = [
        self::STATUS_DELETE => '删除',
        self::STATUS_INVALID => '停用',
        self::STATUS_ENABLE => '启用',
    ];

    public static $genders = [
        self::GENDER_UNKNOWN => '未知',
        self::GENDER_MAN => '男',
        self::GENDER_WOMAN => '女',
    ];

    /**
     * {@inheritdoc}
     */
    public static function tableName()
    {
        return '{{%patient_user}}';
    }

    /**
     * {@inheritdoc}
     */
    public function rules()
    {
        return [
            [['project_id', 'age', 'source_channel_id', 'gender', 'city_id', 'patient_diseases_id', 'patient_diseases_child_id', 'belong_assistant_id', 'belong_member_id', 'effect_type_id', 'risk_type_id', 'clinic_assess_id', 'outpatient_type_id', 'last_clinic_time', 'last_infusion_time', 'clinic_id', 'reg_time', 'last_revisiting_time', 'kf_next_callback_time', 'kf_last_callback_time', 'kf_last_callback_id', 'kf_callback_count', 'yz_last_callback_time', 'yz_next_callback_time', 'yz_last_callback_id', 'yz_callback_count', 'next_revisiting_time', 'last_callback_time', 'next_callback_time', 'callback_count', 'is_anti_relapse', 'is_introduce', 'anti_relapse_year', 'missed_days', 'revisiting_count', 'fault_diagnosis_count', 'status', 'modify_time', 'serial_no', 'created_at', 'updated_at'], 'integer'],
            [['birthday'], 'safe'],
            [['remark'], 'string'],
            [['degree_num'], 'number'],
            [['patient_card_id', 'nickname', 'city_name', 'belong_member_name'], 'string', 'max' => 50],
            [['name'], 'string', 'max' => 20],
            [['wx_name', 'profession'], 'string', 'max' => 100],
            [['mobile'], 'string', 'max' => 30],
            [['address','work_address'], 'string', 'max' => 255],
            [['patient_body_parts_name', 'patient_tags_name'], 'string', 'max' => 200],
            [['kf_last_callback_user', 'yz_last_callback_user'], 'string', 'max' => 80],
        ];
    }

    /**
     * {@inheritdoc}
     */
    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'project_id' => '项目ID',
            'patient_card_id' => '诊疗号',
            'name' => '患者姓名',
            'birthday' => '生日',
            'age' => '年龄',
            'wx_name' => '微信号',
            'nickname' => '微信昵称',
            'source_channel_id' => '来源渠道ID【by_marketing_source_channel】',
            'gender' => '性别[0:未知;1:男;2:女]',
            'mobile' => '手机号',
            'city_id' => '城市ID【对应by_common_provinces id】',
            'city_name' => '城市名称',
            'address' => '详细地址',
            'work_address' => '居住地址',
            'patient_diseases_id' => '病种ID【by_base_patient_diseases】',
            'patient_diseases_child_id' => '二级病种ID【by_base_patient_diseases】',
            'patient_body_parts_name' => '部位（冗余字段）【多个用','分割】',
            'patient_tags_name' => '患者标签（冗余字段）【多个用','分割】',
            'belong_assistant_id' => '医助归属人id，关联member表',
            'belong_member_id' => '客服归属人id，关联member表',
            'belong_member_name' => '客服归属人姓名， 冗余字段',
            'effect_type_id' => '效果类型
ID【by_marketing_effect_type】',
            'risk_type_id' => '风控类型ID【by_marketing_risk_type】',
            'clinic_assess_id' => '诊疗评估ID【by_marketing_clinic_assess】',
            'outpatient_type_id' => '就诊类型
ID【by_marketing_outpatient_type】',
            'last_clinic_time' => '上次治疗时间',
            'last_infusion_time' => '上次输液时间',
            'clinic_id' => '诊室ID【by_clinic】',
            'profession' => '职业',
            'reg_time' => '初次挂号时间',
            'last_revisiting_time' => '上次到诊日期（上次来院时间）',
            'kf_next_callback_time' => '客服下次回访日期',
            'kf_last_callback_time' => '客服上次回访日期',
            'kf_last_callback_id' => '客服上次回访人ID',
            'kf_last_callback_user' => '客服上次回访人',
            'kf_callback_count' => '客服回访总次数',
            'yz_last_callback_time' => '医助上次回访日期',
            'yz_next_callback_time' => '医助下次回访日期',
            'yz_last_callback_id' => '医助上次回访人ID',
            'yz_last_callback_user' => '医助上次回访人',
            'yz_callback_count' => '医助回访总次数',
            'next_revisiting_time' => '下次复诊日期',
            'last_callback_time' => '上次回访日期（作废）',
            'next_callback_time' => '下次回访日期（作废）',
            'callback_count' => '总回访次数（包括医助、客服和其它岗位的所有回访总次数）',
            'is_anti_relapse' => '是否为抗复发（0：否， 其它数字代表抗复发的年限） - 抗复发的患者不算断诊',
            'is_introduce' => '是否为介绍号（0：不是  1：是）',
            'anti_relapse_year' => '抗复发年限',
            'missed_days' => '未到诊天数【=当前时间-上次就诊时间（最近）】',
            'revisiting_count' => '来院次数（来一次算一次，当天来多次，算一次）',
            'fault_diagnosis_count' => '断诊次数',
            'remark' => '备注',
            'status' => '状态【-1删除、0禁用、1启用】',
            'modify_time' => '最后一次更新时间（从微信端数据库同步数据时使用）',
            'degree_num' => '完善度（eg: 0.65，代表65%）',
            'serial_no' => '奕远自增id - 便于跟hosptial表比对数据',
            'created_at' => '创建时间',
            'updated_at' => '更新时间',
        ];
    }
}
